www.gusucode.com > 云网互动影视系统(12套模版和资源联盟) 6.2 > 云网互动影视系统(12套模版和资源联盟) 6.2.4/免费版/Users/js/passwordstrength.js
//密码强度; function PasswordStrength(showed){ this.showed = (typeof(showed) == "boolean")?showed:true; this.styles = new Array(); this.styles[0] = {backgroundColor:"#EBEBEB",borderLeft:"solid 1px #FFFFFF",borderRight:"solid 1px #BEBEBE",borderBottom:"solid 1px #BEBEBE"}; this.styles[1] = {backgroundColor:"#FF4545",borderLeft:"solid 1px #FFFFFF",borderRight:"solid 1px #BB2B2B",borderBottom:"solid 1px #BB2B2B"}; this.styles[2] = {backgroundColor:"#FFD35E",borderLeft:"solid 1px #FFFFFF",borderRight:"solid 1px #E9AE10",borderBottom:"solid 1px #E9AE10"}; this.styles[3] = {backgroundColor:"#95EB81",borderLeft:"solid 1px #FFFFFF",borderRight:"solid 1px #3BBC1B",borderBottom:"solid 1px #3BBC1B"}; this.labels= ["弱","中","强"]; this.divName = "pwd_div_"+Math.ceil(Math.random()*100000); this.minLen = 5; this.width = "150px"; this.height = "16px"; this.content = ""; this.selectedIndex = 0; this.init(); } PasswordStrength.prototype.init = function(){ var s = '<table cellpadding="0" id="'+this.divName+'_table" cellspacing="0" style="width:'+this.width+';height:'+this.height+';">'; s += '<tr>'; for(var i=0;i<3;i++){ s += '<td id="'+this.divName+'_td_'+i+'" width="33%" align="center"><span style="font-size:1px"> </span><span id="'+this.divName+'_label_'+i+'" style="display:none;font-family: Courier New, Courier, mono;font-size: 12px;color: #000000;">'+this.labels[i]+'</span></td>'; } s += '</tr>'; s += '</table>'; this.content = s; if(this.showed){ document.write(s); this.copyToStyle(this.selectedIndex); } } PasswordStrength.prototype.copyToObject = function(o1,o2){ for(var i in o1){ o2[i] = o1[i]; } } PasswordStrength.prototype.copyToStyle = function(id){ this.selectedIndex = id; for(var i=0;i<3;i++){ if(i == id-1){ this.$(this.divName+"_label_"+i).style.display = "inline"; }else{ this.$(this.divName+"_label_"+i).style.display = "none"; } } for(var i=0;i<id;i++){ this.copyToObject(this.styles[id],this.$(this.divName+"_td_"+i).style); } for(;i<3;i++){ this.copyToObject(this.styles[0],this.$(this.divName+"_td_"+i).style); } } PasswordStrength.prototype.$ = function(s){ return document.getElementById(s); } PasswordStrength.prototype.setSize = function(w,h){ this.width = w; this.height = h; } PasswordStrength.prototype.setMinLength = function(n){ if(isNaN(n)){ return ; } n = Number(n); if(n>1){ this.minLength = n; } } PasswordStrength.prototype.setStyles = function(){ if(arguments.length == 0){ return ; } for(var i=0;i<arguments.length && i < 4;i++){ this.styles[i] = arguments[i]; } this.copyToStyle(this.selectedIndex); } PasswordStrength.prototype.write = function(s){ if(this.showed){ return ; } var n = (s == 'string') ? this.$(s) : s; if(typeof(n) != "object"){ return ; } n.innerHTML = this.content; this.copyToStyle(this.selectedIndex); } PasswordStrength.prototype.update = function(s){ if(s.length < this.minLen){ this.copyToStyle(0); return; } var ls = -1; if (s.match(/[a-z]/ig)){ ls++; } if (s.match(/[0-9]/ig)){ ls++; } if (s.match(/(.[^a-z0-9])/ig)){ ls++; } if (s.length < 6 && ls > 0){ ls--; } switch(ls) { case 0: this.copyToStyle(1); break; case 1: this.copyToStyle(2); break; case 2: this.copyToStyle(3); break; default: this.copyToStyle(0); } }